Page({
  data: {
    dialogVisible: false,
    houseList: [],
    isEmpty: false
  },

  swipeClose(ev) {
    const {
      position,
      instance
    } = ev.detail

    if (position === 'right') {
      // #1 显示 Dialog 对话框
      this.setData({
        dialogVisible: true,
      })

      // #2 swiper-cell 滑块关闭
      instance.close()

      // #3 ev.mark 里面包含了 id 和 index
      this.setData(ev.mark)
    }
  },

  goDetail(ev) {
    wx.navigateTo({
      url: '/house_pkg/pages/detail/index?id=' + ev.mark.id,
    })
  },

  addHouse() {
    wx.navigateTo({
      url: '/house_pkg/pages/locate/index',
    })
  },
  onShow() {
    this.getHouseList()
  },
  async getHouseList() {
    // 了解 Restful API：后端写接口的一种风格，最典型的特点是，相同的请求地址，能根据请求方法的不同实现不同的功能
    const {
      code,
      data: houseList
    } = await wx.http.get('/room')
    if (code !== 10000) return wx.utils.toast('获取房屋列表失败')
    this.setData({
      houseList,
      // isEmpty: houseList.length === 0 ? true : false
      isEmpty: houseList.length === 0
    })
  },
  async dialogClose(ev) {
    // 当点击了确定，就删除
    if (ev.detail === 'confirm') {
      // 走删除的逻辑
      const {
        code
      } = await wx.http.delete(`/room/${this.data.id}`)
      if (code !== 10000) return wx.utils.toast('删除房屋失败')
      // 前端想看到删除的结果有两种方式，第一种调用接口重新拉一下，第二种前端手动删一下
      this.data.houseList.splice(this.data.index, 1)
      this.setData({
        houseList: this.data.houseList,
        isEmpty: this.data.houseList.length === 0
      })
      wx.utils.toast('删除房屋成功')
    }
  }
})